package com.t3rik.mobile.mes.service

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
import com.baomidou.mybatisplus.extension.plugins.pagination.Page
import com.t3rik.mes.pro.domain.ProTask
import com.t3rik.mobile.mes.dto.TaskClaimRequestDTO

/**
 * 任务认领服务接口
 * @author t3rik
 * @date 2024/12/18
 */
interface ITaskClaimService {
    
    /**
     * 员工自主认领任务
     * @param claimRequest 认领请求参数
     * @return 认领结果信息
     */
    fun claimTasks(claimRequest: TaskClaimRequestDTO): String
    
    /**
     * 员工取消认领任务
     * @param claimRequest 取消认领请求参数
     * @return 取消认领结果信息
     */
    fun cancelClaimTasks(claimRequest: TaskClaimRequestDTO): String
    
    /**
     * 查询可认领的任务列表（分页）
     * @param queryWrapper 查询条件
     * @param page 分页参数
     */
    fun listAvailableTasks(queryWrapper: LambdaQueryWrapper<ProTask>, page: Page<ProTask>)
    
    /**
     * 查询可认领的任务列表（不分页）
     * @return 可认领的任务列表
     */
    fun getAvailableTasks(): List<ProTask>
}